# demo01_re.py   regex expression
# [0123456789]-->[0-9]-->\d
# \d\d\d-->\d{3}   \d+: 1次或多次
import re
# 1. re.match(正则字符串,目标字符串)
d1 = re.match("\d{3}", "123aaabbccc")
print("d1:", d1, d1.group())  # SRE_Match  123
# 2. re.search(正则字符串,目标字符串)
d2 = re.search("\d{3}", "aa123bb444cc666")
print("d2:", d2, d2.group())  # 123
# 3. re.findall(正则字符串,目标字符串)
d3 = re.findall("\d{3}", "111bbc111ddd111ee")
print("d3:", d3)  # ['111', '111', '111']
# 4. re.finditer(正则字符串,目标字符串): 可迭代对象
d4 = re.finditer("\d{3}", "111bbc111ddd111ee")
for item in d4:
    print("item:", item, item.group())  # 111
# 5. re.split(正则字符串,目标字符串): 切割
d5 = re.split("-|\.", "hello-tar.gz")
print("d5:", d5)  # ['hello', 'tar', 'gz']
# 6. re.sub(正则字符串, 替换内容, 目标字符串): 替换
d6 = re.sub("\d{3}","benben", "Hi 123,nice to meet you,456")
print("d6:", d6)
# 7. re.compile(正则字符串):将字符串编译成正则对象
#    实现了正则的一次编译n次使用
re_obj = re.compile("\d{3}")  # re_obj: 正则对象
d7 = re_obj.search("aa123bb")
print("d7:", d7, d7.group())  # 123
d8 = re_obj.split("aaa123bbb333ccc")
print("d8:", d8)  # ['aaa', 'bbb', 'ccc']